package cn.iocoder.yudao.framework.business.comment.service;

import cn.iocoder.yudao.framework.business.basic.service.PageService;
import cn.iocoder.yudao.framework.business.basic.service.SimpleDeleteService;
import cn.iocoder.yudao.framework.business.basic.service.SimpleDetailService;
import cn.iocoder.yudao.framework.business.comment.pojo.form.CommentQueryDTO;
import cn.iocoder.yudao.framework.business.comment.pojo.form.CommentReplyForm;
import cn.iocoder.yudao.framework.business.comment.pojo.form.CommentSaveDTO;
import cn.iocoder.yudao.framework.business.comment.pojo.vo.AdminCommentVO;

/**
 * 评论 Service 实现类，由子类继承
 *
 * @author 山野羡民
 */
public interface AdminCommentService<RESP extends AdminCommentVO, SAVE extends CommentSaveDTO, QUERY extends CommentQueryDTO> extends SimpleDetailService<RESP>, PageService<RESP, QUERY>, SimpleDeleteService {

    /**
     * 创建评论
     *
     * @param userId 用户编号
     * @param reqVO  创建请求
     * @return 返回评论编号
     */
    Long createComment(Long userId, SAVE reqVO);

    /**
     * 回复评论
     *
     * @param userId 用户编号
     * @param reqVO  回复请求
     * @return 返回评论编号
     */
    Long replyComment(Long userId, CommentReplyForm reqVO);

}
